package com.hbnu.system.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
    // 加密方法：返回16位缩短版MD5加密结果
    public static String encrypt(String newPassword) {
        if (newPassword == null) {
            return null; // 处理空输入
        }

        try {
            // 获取MD5加密实例
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 计算加密后的字节数组
            byte[] digest = md.digest(newPassword.getBytes());

            // 将字节数组转为32位十六进制字符串
            StringBuilder sb = new StringBuilder();
            for (byte b : digest) {
                sb.append(String.format("%02x", b));
            }
            String fullMD5 = sb.toString();

            // 截取中间16位作为缩短后的结果（第8位到第24位）
            return fullMD5.substring(8, 24);

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null; // 异常时返回null
        }
    }

}
